1. The Field of the Invention
The present invention relates to computing technology; and more specifically, to mechanisms for performing consistency checking for selected data fields.
2. Background and Related Art
Computing technology has transformed the way we work and play. Computing systems now take a wide variety of forms including desktop computers, laptop computers, tablet PCs, Personal Digital Assistants (PDAs), household devices and the like. Currently, computing system technology has improved significantly. Numerous application or other software instances may run on a single computing system at the same time.
In order to operate properly, an instance often uses state information to allow the instance to properly interpret its current state. Each time the state information is transferred from one memory location to another (or between durable storage and a memory location), there is a possibility that a bit will switch from one binary value to another thereby corrupting the data that contains the bit. Furthermore, even if the data is not transferred, the passage of time alone introduces some risk of data corruption.
Data corruption can cause a significant adverse impact on the performance of the instance, and may even disable much of the functionality of the instance. In most cases, data corruption may cause the instance to cease operation altogether. To avoid this adverse impact on performance, some application instances have code that allows the instance to actively perform consistency checking to detect whether data corruption has occurred. Some instances even have recovery code that the instance executes when such a data corruption is detected. This is effective in detecting and recovering from data corruption. However, it requires that the instance have its own consistency checking and recovery code. Furthermore, some instances do not have such consistency checking code, and then are subject to the risks of data corruption. What would be advantageous are mechanisms for centralizing consistency checking to allow instances access to consistency checking of its state information without having dedicated code for performing the consistency checking.
Consistency checking is quite processor intensive depending on the amount of data to be subject to consistency checking. However, not all data fields have equal importance in terms of the risk and impact of data corruption. It may not be worthwhile to perform consistency checking on all of the state information for the instance. Accordingly, what would be advantageous are mechanisms for permitting the instance to designate which of the data fields in the state information are to be subject to consistency checking, and under what conditions.